package org.example.demo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import org.example.demo.entity.BackgroundCheck;

import java.util.Map;

/**
 * 政审信息服务接口
 */
public interface BackgroundCheckService {
    
    /**
     * 分页查询政审信息
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @param name 申请人姓名，可为空
     * @param type 政审类型，可为空
     * @param result 政审结果，可为空
     * @return 分页数据
     */
    IPage<BackgroundCheck> selectPage(Integer pageNum, Integer pageSize, String name, String type, String result);
    
    /**
     * 统计政审信息总数
     * @param name 申请人姓名，可为空
     * @param type 政审类型，可为空
     * @param result 政审结果，可为空
     * @return 总数
     */
    int selectCount(String name, String type, String result);
    
    /**
     * 根据ID查询政审信息
     * @param id 政审信息ID
     * @return 政审信息
     */
    BackgroundCheck getById(Long id);
    
    /**
     * 根据申请人ID查询政审信息
     * @param applicantId 申请人ID
     * @return 政审信息
     */
    BackgroundCheck getByApplicantId(Long applicantId);
    
    /**
     * 新增或更新政审信息
     * @param backgroundCheck 政审信息
     * @return 是否成功
     */
    boolean saveOrUpdate(BackgroundCheck backgroundCheck);
    
    /**
     * 删除政审信息
     * @param id 政审信息ID
     * @return 是否成功
     */
    boolean removeById(Long id);
    
    /**
     * 统计各类政审结果的数量
     * @return 统计结果，key为结果类型，value为数量
     */
    Map<String, Integer> countByResults();
} 